/**
 * @file 工单操作-算账
 * @author yangjiangming <449654337@qq.com>
 * @date 2018-12-10 20:13:16
 */
layui.extend({
    oms_comment_modifier: 'comment/zs/zmn.oms.comment.modifier'
}).define(['form', 'oms_comment_modifier', 'zmnUtils', '$http'], function (exports) {

    var $ = layui.$;
    var form = layui.form;
    var $http = layui.$http;
    var zmnUtils = layui.zmnUtils;

    var modifier = layui.oms_comment_modifier.modifier;

    var SAVE_REMARK_URL = '/order_comment/modify/save/remark.action';

    function _getInputTitleByNameAndValue (name, value) {
        return $('input[name="' + name + '"][value="' + value + '"]').attr('title');
    }

    /**
     * 整理参数
     * @param data
     * @returns {{codeMapList: Array}}
     * @private
     */
    function _normalizeSaveParams (data) {
        var params = {
            codeMapList: []
        };

        data.forEach(function ({ name, value }, index) {
            if (name === 'codeMapList') {
                params.codeMapList.push({
                    text: _getInputTitleByNameAndValue(name, value),
                    value: value
                });

                return;
            }
            params[name] = value;
        });

        return params;
    }

    /**
     * 保存评价备注
     * @param params
     * @private
     */
    function _saveRemark (params, button) {
        return $http.lockSave(SAVE_REMARK_URL, params, button);
    }

    /**
     * 初始化页面数据
     */
    function initPage () {
        modifier.initOperatePage();
    }

    /**
     * 初始化页面事件
     */
    function initEvent () {
        // 监听表单提交事件
        form.on('submit', function (obj) {
            var params = _normalizeSaveParams($(obj.form).serializeArray());

            _saveRemark(params, obj.elem).then(function () {
                zmnUtils.layui.toastSuccess('保存成功', function () {
                    zmnUtils.layui.closeOwnLayer();
                });
            }).fail(function (msg) {
                zmnUtils.layui.toastError('保存失败，原因：' + msg);
            });

            return false;
        });
    }

    /**
     * 初始化页面
     */
    function init () {
        initEvent();

        initPage();
    }

    init();
    exports('oms_comment_modify_remark');
});
